#ifndef _VN_LEVEL_H_
#define _VN_LEVEL_H_

#include <vector>
#include <string>
#include "..\Engines\TileEngine.h"
#include "..\Graphics\Sprite.h"
#include "..\Audio\Music.h"

class Message;
class Level
{
public:
	Level(const std::string& p_filepath);
	virtual ~Level(void);

	void loadLevel();
	float getWidth() const		{ return m_widht; }
	float getHeight() const		{ return m_height; }
	void playMusic(const std::string& p_id, Message* p_message);
	void playMusic(bool p_value);

protected:
	void clear();
	float m_widht, m_height;

	vn::Sprite* m_bg;
	vn::Music* m_music;
	std::string m_filepath;
	std::vector<vn::TileEngine*> m_tiles;
};

#endif // _VN_LEVEL_H_